// Copyright 2021 ZUP IT SERVICOS EM TECNOLOGIA E INOVACAO SA
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package dependencycheck

import (
	"strings"

	"github.com/ZupIT/horusec-devkit/pkg/enums/severities"
)

const (
	Highest  = "highest"
	Critical = "critical"
	High     = "high"
	Moderate = "moderate"
	Medium   = "medium"
	Low      = "low"
)

type dependencyCheckVulnerability struct {
	Description string `json:"description"`
	Severity    string `json:"severity"`
	Name        string `json:"name"`
}

//nolint:funlen // need to be bigger than 10
func (v *dependencyCheckVulnerability) getSeverity() severities.Severity {
	switch strings.ToLower(v.Severity) {
	case Highest, Critical:
		return severities.Critical
	case High:
		return severities.High
	case Moderate, Medium:
		return severities.Medium
	case Low:
		return severities.Low
	default:
		return severities.Unknown
	}
}
